package com.shop.cereshop.commons.tencent.im.model.msg.data;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @description: 视频消息数据
 * @author zdd
 * @date 2025/9/9 22:11
 * @version 1.0
 */
@ApiModel("视频消息数据")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class VideoMsgData implements Serializable, MsgData {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("视频下载地址。可通过该 URL 地址直接下载相应视频")
    @NotBlank(message = "videoUrl不能为空")
    private String videoUrl;

    @ApiModelProperty("视频的唯一标识，客户端用于索引视频的键值")
    @NotBlank(message = "videoUuid不能为空")
    private String videoUuid;

    @ApiModelProperty("视频数据大小，单位：字节")
    @NotNull(message = "videoSize不能为空")
    private Integer videoSize;

    @ApiModelProperty("视频时长，单位：秒。Web 端不支持获取视频时长，值为0")
    @NotNull(message = "videoSecond不能为空")
    private Integer videoSecond;

    @ApiModelProperty("视频格式，例如 mp4")
    @NotBlank(message = "videoFormat不能为空")
    private String videoFormat;

    @ApiModelProperty("视频下载方式标记。目前 VideoDownloadFlag 取值只能为2，表示可通过 VideoUrl 字段值的 URL 地址直接下载视频")
    @NotNull(message = "videoDownloadFlag不能为空")
    private Integer videoDownloadFlag;

    @ApiModelProperty("视频缩略图下载地址。可通过该 URL 地址直接下载相应视频缩略图")
    @NotBlank(message = "thumbUrl不能为空")
    private String thumbUrl;

    @ApiModelProperty("视频缩略图的唯一标识，客户端用于索引视频缩略图的键值")
    @NotBlank(message = "thumbUuid不能为空")
    private String thumbUuid;

    @ApiModelProperty("缩略图大小，单位：字节")
    @NotNull(message = "thumbSize不能为空")
    private Integer thumbSize;

    @ApiModelProperty("缩略图宽度，单位为像素")
    @NotNull(message = "thumbWidth不能为空")
    private Integer thumbWidth;

    @ApiModelProperty("缩略图高度，单位为像素")
    @NotNull(message = "thumbHeight不能为空")
    private Integer thumbHeight;

    @ApiModelProperty("缩略图格式，例如 JPG、BMP 等")
    @NotBlank(message = "thumbFormat不能为空")
    private String thumbFormat;

    @ApiModelProperty("视频缩略图下载方式标记。目前 ThumbDownloadFlag 取值只能为2，表示可通过 ThumbUrl 字段值的 URL 地址直接下载视频缩略图")
    @NotNull(message = "thumbDownloadFlag不能为空")
    private Integer thumbDownloadFlag;

}
